package fr.afcepf.atod18.hotels.services.interfaces;

import java.util.Date;
import java.util.List;

import fr.afcepf.atod18.hotels.entities.CapaciteChambre;
import fr.afcepf.atod18.hotels.entities.Chambre;
import fr.afcepf.atod18.hotels.entities.Hotel;
import fr.afcepf.atod18.hotels.entities.Pays;
import fr.afcepf.atod18.hotels.entities.StandingChambre;
import fr.afcepf.atod18.hotels.entities.Tarif;

public interface IServiceHotel {
	
	public abstract void createHotel(Hotel h);
	
	public abstract Hotel getHotelByID(int id);
	
	public abstract List<Hotel> getAllHotel();
	
	public abstract List<Hotel> getListHotelByPays(String idPays);
	
	public abstract void updateHotel(Hotel h);
	
	public abstract void deleteHotel(Hotel h);
	
	public abstract double getTarifChambre(CapaciteChambre cap, StandingChambre stand);
	
	public abstract List<Chambre> getChambreLibre(Date dateDebut, Date dateFin, CapaciteChambre cap, int idHotel);
	
	public abstract List<Chambre> getChambreLibre(Date dateDebut, Date dateFin, CapaciteChambre cap, StandingChambre stand);
	
	public abstract List<Chambre> getChambreLibre(String idPays, Date dateDebut, Date dateFin);
	
	public abstract List<Chambre> getChambreLibre(int idHotel, Date dateDebut, Date dateFin);

	public abstract Tarif getTarifChambre(int idHotel, int numeroChambre);

	public abstract void setOccupationChambre(int idHotel, int numeroChambre,
			Date DateDebut, Date DateFin);

	List<Hotel> getOurCountryLocation();
	
}
